#ifndef WIDGETDEVICEFORM_H
#define WIDGETDEVICEFORM_H

#include <QWidget>
#include "groundweatherstationform.h"
#include "mscatteringlidarform.h"
#include "solarradiometer2form.h"
#include "visibilityform.h"


namespace Ui {
class WidgetDeviceForm;
}

class WidgetDeviceForm : public QWidget
{
    Q_OBJECT

public:
    explicit WidgetDeviceForm(QWidget *parent = nullptr);
    ~WidgetDeviceForm();

public:
    enum enTypeDevice{
      enGroundWeatherStation = 0,
      enVisibility           = 1,
      enMScatterLidar        = 2,
      enSolarRadiometer      = 3,
      enSolarRadiometer2     = 4
    };

signals:
    void Sig_DeviceVisibilityProtocol(protocol::VisibilityProtocol);

    void Sig_DeviceGroundWeatherStationProtocol(protocol::GroundWeatherStationProtocol);

    void Sig_DeviceSolarRadioMeterProtocolNSU(const protocol::RadioMeterNSUProtocolAll& protocol);
    void Sig_DeviceSolarRadioMeterProtocolSTA(const protocol::RadioMeterSTAProtocolAll& protocol);
    void Sig_DeviceSolarRadioMeterProtocolAOD(const protocol::RadioMeterAODProtocolAll& protocol);
    void Sig_DeviceSolarRadioMeterProtocolATR(const protocol::RadioMeterATRProtocolAll& protocol);
    void Sig_DeviceSolarRadioMeterProtocolLAT(const QString& lat);
    void Sig_DeviceSolarRadioMeterProtocolLON(const QString& lon);
private:
    Ui::WidgetDeviceForm *ui;

    GroundWeatherStationForm m_GroundWeatherStation;
    MScatteringLidarForm     m_MScatterLidar;
    //SolarRadiometerForm      m_SolarRadiometer;
    SolarRadiometer2Form     m_SolarRadiometer;
    VisibilityForm           m_Visibility;
};

#endif // WIDGETDEVICEFORM_H
